############################################################################
CROSS_COMPILE = 
AS			  = $(CROSS_COMPILE)as
LD			  = $(CROSS_COMPILE)ld
CC			  = $(CROSS_COMPILE)gcc
CPP			  = $(CC) -E
AR			  = $(CROSS_COMPILE)ar
NM			  = $(CROSS_COMPILE)nm
STRIP		  = $(CROSS_COMPILE)strip
OBJCOPY		  = $(CROSS_COMPILE)objcopy
OBJDUMP		  = $(CROSS_COMPILE)objdump

export AS LD CC CPP AR NM
export STRIP OBJCOPY OBJDUMP
############################################################################

CFLAGS := -O3 -g -Wall -Wshadow -Wundef -Wmissing-prototypes
CFLAGS += -I./inc/ 
CFLAGS += -I./library/lib_gui/
CFLAGS += -I /usr/include/alsa/
CFLAGS += -I /usr/local/include/
CFLAGS += -I /usr/local/include/SDL2
CFLAGS += -I /usr/local/include/freetype2
CFLAGS += -I /usr/local/include/libavutil
CFLAGS += -I /usr/local/include/libavcodec
CFLAGS += -I /usr/local/include/libdrm
CFLAGS += -I /usr/local/include/rockchip
CFLAGS += -I /usr/local/include/cjson/
CFLAGS += -I /usr/local/include/curl/
CFLAGS += -I /usr/local/include/libxml2/

CPPFLAGS := -I/usr/local/include/opencv4/
############################################################################

LDFLAGS := -ldl -lm -lpthread
LDFLAGS += -L/usr/lib
LDFLAGS += -L/usr/local/lib
LDFLAGS += -lSDL2
LDFLAGS += -lfreetype
LDFLAGS += -lcjson
LDFLAGS += -lcurl
LDFLAGS += -lasound
LDFLAGS += -lrockchip_mpp
LDFLAGS += -ldrm_rockchip -ldrm
LDFLAGS += -lavfilter 
LDFLAGS += -lavformat -lavcodec  -lswresample 
LDFLAGS += -lavutil   -lavdevice -lswscale
LDFLAGS += -lrga
LDFLAGS += -ljpeg

export CFLAGS LDFLAGS
############################################################################

PROJECT_PATH := $(shell pwd)
export PROJECT_PATH

OUTPUT_DIR := $(PROJECT_PATH)/output

PROJECT_NAME := rk_desk
############################################################################
############################################################################
#找到当前目录下的所有C文件

CSRCS += $(shell find $(PROJECT_PATH) -name '*.c')
############################################################################
#将.c文件替换成.o文件
CXX_OBJCTS = $(patsubst  %.c, $(OUTPUT_DIR)/%.o, $(notdir $(CSRCS)))
SRC_C_DEPS = $(patsubst  %.c, $(O).%.o.d, $(CSRCS))
############################################################################
SOURSE_DIR = $(dir $(CSRCS))
vpath %.c $(SOURSE_DIR)
############################################################################

$(OUTPUT_DIR)/%.o: %.c
	$(CC) $< -c -MMD -o $@ $(CFLAGS)
	#@echo "build $<"
 
all: mk_output $(CXX_OBJCTS)
	@$(CC) -o $(PROJECT_NAME) $(CXX_OBJCTS) $(LDFLAGS)
	$(info ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
	$(info "...build succeed...")
	$(info ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
############################################################################
clean:
	rm -f $(shell find -name "*.o")
	rm -f $(shell find -name "*.d")
	rm -f $(PROJECT_NAME)

distclean:
	rm -f $(shell find -name "*.o")
	rm -f $(shell find -name "*.d")
	rm -f $(PROJECT_NAME)
mk_output:
	mkdir -p $(OUTPUT_DIR)
debug:
	@echo "CSRCS=$(CSRCS)"
	@echo "CXX_OBJCTS=$(CXX_OBJCTS)"
	@echo "SRC_C_DEPS=$(SRC_C_DEPS)"
############################################################################
FORCE:
.PHONY: FORCE
-include $(OUTPUT_DIR)/*.d
############################################################################
	